/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package prueba_mensaje;
import java.util.Collection;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;

/**
 *
 * @author GROSSEL
 */
public class HiloProductor implements Runnable {

	private String url;
	private String subject;
	
	public HiloProductor(String url, String subject) {
		this.url = url;
		this.subject = subject;
	}

	public void run() {
		boolean bandera = true;
		while (bandera) {
			try {
				System.out.println("HiloProductor: " + new Date());
				Thread.sleep(5000);

				//GestionProductos gestion = new GestionProductos();
				//Collection<Producto> sinStock = gestion.listarProductosImportantesSinStock();
				
				//if ( sinStock.size() != 0 ) {
				
					// Obteniendo una conexión JMS del servidor e iniciándolo
					ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
					Connection connection = connectionFactory.createConnection();
					connection.start();
	
					// Los mensajes JMS son enviados y recibidos usando una sesión. We will
					// Crearemos un objeto sesión no-transaccional. 
					// Si desea usar transacciones debería establecer el primer parámetro en true
					Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
	
					// Destination representa aquí nuestra cola "subject" en el servidor JMS
					// No tiene que hacer nada especial en el servidor para crearlo,
					// se creará automáticamente
					Destination destination = session.createQueue(subject);
	
					// MessageProducer es usado para enviar mensajes (al contrario de 
					// MessageConsumer que es usado para recibir mensajes)
					MessageProducer producer = session.createProducer(destination);
	
					String ids = "Proveedor 01";
										
					// Enviaremos un mensaje 
					TextMessage message = session.createTextMessage("Licitación publicada: " + ids);
	
					// Aquí enviamos el mensaje
					producer.send(message);
					System.out.println("Mensaje enviado: '" + message.getText() + "'");
	
					connection.close();
					bandera = false;
				//}

			} catch (InterruptedException e) {
				System.out.println(e.getMessage());				
			} catch (JMSException ex) { 
                        Logger.getLogger(HiloProductor.class.getName()).log(Level.SEVERE, null, ex);
                    } 
                        

		}
	}
    
}
